#ifndef __CALLBACK_H__
#define __CALLBACK_H__

#include <memory>
#include <functional>

using std::placeholders::_1;
using std::placeholders::_2;
using std::placeholders::_3;

namespace tiny_muduo
{
    class Buffer;
    class TcpConnection;
    typedef std::shared_ptr<TcpConnection> TcpConnectionPtr;

    typedef std::function<void(const TcpConnectionPtr&, Buffer*)> ConnectionCallback;
    typedef std::function<void(const TcpConnectionPtr&, Buffer*)> MessageCallback;
    typedef std::function<void()> ReadCallback;
    typedef std::function<void()> WriteCallback;
    typedef std::function<void(const TcpConnectionPtr&)> CloseCallback;
}
#endif
